package br.com.lacibMusic.bean;

import br.com.lacibMusic.entidades.GeneroMusical;
import br.com.lacibMusic.rn.GeneroMusicalRN;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;

import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class GeneroMusicalBean implements Serializable {

    private GeneroMusicalRN generoMusicalRN = new GeneroMusicalRN();
    private GeneroMusical generoMusical = new GeneroMusical();
    private List<GeneroMusical> generosMusicais;
    private String renderLista;

    public String getTitulo() {
        iniciarBean();

        return "Cadastro - Gênero Musical";
    }

    public void iniciarBean() {
        generosMusicais = generoMusicalRN.obterTodos();
        renderLista = "0";
    }

    public GeneroMusicalBean() {
    }

    public GeneroMusical getGeneroMusical() {
        return generoMusical;
    }

    public void setGeneroMusical(GeneroMusical generoMusical) {
        this.generoMusical = generoMusical;
    }

    public GeneroMusicalRN getGeneroMusicalRN() {
        return generoMusicalRN;
    }

    public void setGeneroMusicalRN(GeneroMusicalRN generoMusicalRN) {
        this.generoMusicalRN = generoMusicalRN;
    }

    public List<GeneroMusical> getGenerosMusicais() {
        if (generosMusicais == null) {
            generosMusicais = generoMusicalRN.obterTodos();
        }
        return generosMusicais;
    }

    public void setGenerosMusicais(List<GeneroMusical> generoMusicals) {
        this.generosMusicais = generoMusicals;
    }

    public void irExcluir() {
        renderLista = "2";
    }

    public void cancelar() {
        generoMusical = null;
        renderLista = "0";
    }

    public void voltar() {
        generoMusical = null;
        renderLista = "0";
    }

    public void novo() {
        if (generoMusical == null) {
            generoMusical = generoMusicalRN.novo();
        }
        renderLista = "1";
    }

    public void salvar() {
        if (!generoMusicalRN.obterPorNome(generoMusical.getNomeGeneroMusical()).isEmpty()) {
            BeanUtil.criarMensagemDeErro("Erro ao salvar", "Verifique se já não existe gênero musical cadastrado com este nome.");
        } else {

            if (generoMusicalRN.salvar(generoMusical)) {
                BeanUtil.criarMensagemDeInformacao("Operação Realizada com Sucesso", "Gênero Musical Salvo na Lista");
            } else {
                BeanUtil.criarMensagemDeErro("Erro ao salvar", "O GeneroMusical não pode ser salvo.");
            }
        }
        generoMusical = null;
    }

    public void excluir() {
        if (generoMusicalRN.remover(generoMusical)) {
            BeanUtil.criarMensagemDeInformacao("GeneroMusical Removido com sucesso.", "GeneroMusical: " + generoMusical.getNomeGeneroMusical());
        } else {
            BeanUtil.criarMensagemDeErro("Erro ao remover GeneroMusical.", "O GeneroMusical não pode ser removido.");
        }
        generoMusical = null;
        voltar();
    }

    public String getRenderLista() {
        return renderLista;
    }

    /**
     * @return the renderLista
     */
    public String isRenderLista() {
        return renderLista;
    }

    /**
     * @param renderLista the renderLista to set
     */
    public void setRenderLista(String renderLista) {
        this.renderLista = renderLista;
    }
}
